package main


//https://blog.csdn.net/yeyincai/article/details/51470475 实现类似的服务发现与服务治理

import (
	localGrpc "grpc/protos"
	"net"
	"log"
	"google.golang.org/grpc"
	"context"
	"google.golang.org/grpc/reflection"
)

type SayHelloService struct {
}

//实现服务接口
func (s *SayHelloService) GetResponse(_ context.Context, in *localGrpc.Hello) (*localGrpc.HelloReply, error) {
	return &localGrpc.HelloReply{
		Message: "hello " + in.Name,
	}, nil
}

func main() {
	//AsEncodeTool()
	//作为 RPC server 使用
	lis, err := net.Listen("tcp", "0.0.0.0:9999")
	if err != nil {
		log.Fatalf("failed to listen: %v", err)
	}
	s := grpc.NewServer()
	// 注册服务到 gRPC 服务器，会把已定义的 protobuf 与自动生成的代码接口进行绑定。
	localGrpc.RegisterHelloServiceServer(s, &SayHelloService{})
	// 在 gRPC 服务器上注册 reflection 服务。
	reflection.Register(s) //todo 这个的作用
	s.Serve(lis)
}
